package com.yuzhi.master.sewage.pipe.domain.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.yuzhi.common.annotation.DictFormat;
import com.yuzhi.master.sewage.rmstSz.entity.request.LocalDateTimeSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;


@ExcelIgnoreUnannotated
@Data
public class DrainPipeVo {

    /**
     * 主键ID
     */
    private String id;

    @Schema(description = "管道代码")
    private String draiPipeId;

    @Schema(description = "排水系统代码")
    private String sysId;

    @Schema(description = "所在道路名称")
    private String draiPipeNameRoad;

    @Schema(description = "管道等级1-总干管，2-干管，3-支管、4-街坊管，9-其它")
    private Integer draiPipeGrade;

    @Schema(description = "管道的属性1-雨水，2-污水，3-合流")
    private Integer draiPipeType;

    @Schema(description = "起点道路名称")
    private String draiPipeBroadName;

    @Schema(description = "终点道路名称")
    private String draiPipeEroadName;

    @Schema(description = "断面形式：1-圆型、2-蛋型、3-矩形、9-其它")
    private Integer draiPipeStyle;

    @Schema(description = "管道直径1（毫米）")
    private Integer draiPipeD1;

    @Schema(description = "管道直径2（毫米）")
    private Integer draiPipeD2;

    @Schema(description = "管道长度（米）")
    private Integer draiPipeLength;

    @Schema(description = "管道材质，1-砼，2-钢砼，3-砖石，4-塑料，9-其它")
    private Integer draiPipeMaterial;

    @Schema(description = "起点地面标高（米）")
    private BigDecimal draiPipeAltBeg;

    @Schema(description = "终点地面标高（米）")
    private BigDecimal draiPipeAltEnd;

    @Schema(description = "起点管底标高（米）")
    private BigDecimal draiPipePaltBeg;

    @Schema(description = "终点管底标高（米）")
    private BigDecimal draiPipePaltEnd;

    @Schema(description = "检查井数量")
    private Integer draiPipeManholeN;

    @Schema(description = "雨水口数量")
    private Integer draiPipeStormwellN;

    @Schema(description = "设施的状态")
    private Integer draiPipeState;

    @Schema(description = "竣工日期")
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    private LocalDateTime draiPipeDateFinish;

    @Schema(description = "设计单位")
    private String draiPipeOmDsn;

    @Schema(description = "施工单位")
    private String draiPipeOmBuild;

    @Schema(description = "结构状况")
    private String draiPipeStruc;

    @Schema(description = "水力状况")
    private String draiPipeHydra;

    @Schema(description = "养护单位")
    private String draiPipeOmRep;

    @Schema(description = "维修日期")
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    private LocalDateTime draiPipeDateRep;

    @Schema(description = "倒虹管位置")
    private String draiPipeInvert;

    @Schema(description = "备注")
    private String draiPipeRemark;

    @Schema(description = "起点经度E")
    private BigDecimal longitude;
    @Schema(description = "起点纬度N")
    private BigDecimal latitude;

    @Schema(description = "终点经度E")
    private BigDecimal longitude2;

    @Schema(description = "终点纬度N")
    private BigDecimal latitude2;

    @Schema(description = "行政区域(对应行政区域drain_districts表)")
    private String areaCode;

    @Schema(description = "起点井的ID（关联drain_manhole表）")
    private String drainManholeStartId;

    @Schema(description = "终点井的ID（关联drain_manhole表）")
    private String drainManholeStopId;


    @Schema(description = "地区名称")
    private String districtName;
    @Schema(description = "管道长度（米）")
    private BigDecimal totalPipeLength;

    private String draiPipeStateStr;
    private String draiPipeMaterialStr;
    /**
     * 管道等级1-总干管，2-干管，3-支管、4-街坊管，9-其它
     */
    private String draiPipeGradeStr;
    /**
     * 管道的属性1-雨水，2-污水，3-合流
     */
    private String draiPipeTypeStr;

    /**
     * 断面形式：1-圆型、2-蛋型、3-矩形、9-其它
     */
    private String draiPipeStyleStr;





}
